# 职业锚
Result = {
    'TF': {
        'type': '技术职能型',
        'describe': '对工作有专长和强烈兴趣，注重工作的专业化，对总经理工作缺乏热情',
        'occupation': '典型工作:技术主管和职能部门经理'
    },
    'GM': {
        'type': '管理能力型',
        'describe': '精力充沛，喜欢挑战，有压力的工作',
        'occupation': '典型职业:公司高管'
    },
    'AU': {
        'type': '自主独立型',
        'describe': '喜欢能发挥所长，自主性高的工作',
        'occupation': '典型职业：教师，咨询顾问，研发人员'
    },
    'SE': {
        'type': '安全稳定型',
        'describe': '喜欢稳定，可测的工作',
        'occupation': '典型职业:银行职员，公务员'
    },
    'EC': {
        'type': '创造型',
        'describe': '喜欢不断有新的挑战目标，渴望变化，适合创新型的工作',
        'occupation': '典型职业:企业家'
    },
    'SV': {
        'type': '服务型',
        'describe': '喜欢从事有明显社会意义的工作，得到他人的承认或认可',
        'occupation': '典型职业:医护、社工'
    },
    'CH': {
        'type': '挑战型',
        'describe': '喜欢有难度的工作，能不断挑战自我',
        'occupation': '典型职业:特种兵、专家'
    },
    'LS': {
        'type': '生活型',
        'describe': '强调工作和家庭的和谐',
        'occupation': '典型职业:时间灵活的工作人士'
    }
}
# 职业类型以及对应的题型
TF = [1, 9, 17, 25, 35]
GM = [2, 10, 18, 26, 34]
AU = [3, 11, 19, 27, 35]
SE = [4, 12, 20, 28, 36]
EC = [5, 13, 21, 29, 37]
SV = [6, 14, 22, 30, 38]
CH = [7, 15, 23, 31, 39]
LS = [8, 16, 24, 32, 40]

result = {
    'type': '',
    'describe': '',
    'occupation': ''
}


def ZYM(data):
    # 将字符串中的逗号，以及选项转换为对应的分数
    data_list = data.replace(',', '').replace(
        'A', '1').replace('B', '2').replace(
        'C', '3').replace('D', '4').replace(
        'E', '5').replace('F', '6')

    allCount = {
        'TF': sum([int(data_list[item - 1]) for item in TF]),
        'GM': sum([int(data_list[item - 1]) for item in GM]),
        'AU': sum([int(data_list[item - 1]) for item in AU]),
        'SE': sum([int(data_list[item - 1]) for item in SE]),
        'EC': sum([int(data_list[item - 1]) for item in EC]),
        'SV': sum([int(data_list[item - 1]) for item in SV]),
        'CH': sum([int(data_list[item - 1]) for item in CH]),
        'LS': sum([int(data_list[item - 1]) for item in LS])
    }

    # 遍历不同职业类型，取出其中的选项进行加分，计算对应的总分
    count = {
        'T': allCount['TF'],
        'G': allCount['GM'],
        'A': allCount['AU'],
        'S': allCount['SE'],
        'E': allCount['EC'],
        'V': allCount['SV'],
        'C': allCount['CH'],
        'L': allCount['LS']
    }
    d_order = sorted(allCount.items(), key=lambda x: x[1], reverse=True)
    TopThree = [i[0] for i in d_order[:3]]
    allData = [Result[i] for i in TopThree]
    result['type'] = allData[0]['type'] +'  '+ allData[1]['type'] +'  '+ allData[2]['type']
    result['describe'] = allData[0]['type'] + "<br/>" + allData[0]['describe'] + "<br/>" + allData[0][
        'occupation'] + "<br/><br/>" + allData[1]['type'] + "<br/>" + allData[1]['describe'] + "<br/>" + allData[1][
                             'occupation']
    result['occupation'] = allData[2]['type'] + "<br/>" + allData[2]['describe'] + "<br/>" + allData[2]['occupation']
    result['count'] = count

    return result
